package 代码coding题OR模拟题;
import java.util.List;
import java.util.ArrayList;
public class leetcode6Z字型转换 {
	// 底层也没有什么算法原型  只是 找规律 和取巧问题
	public static void main(String []args) {
		String s = "PAYPALISHIRING";
		int numRows = 3;
		process(s,numRows);
	}
	public static void  process(String str,int numsRows) {
		if(str==null) {
			return ;
		}
		char []s = str.toCharArray();
		//List<List<Character>> martix =  new ArrayList<>();
		char [][]martix=new char[numsRows][s.length];
//		for(int i=0;i < numsRows;i++) {
//				martix.add(new ArrayList<>(s.length));
//		}
		//int hang=numsRows;
		int lie=0;
		for(int i=0; i < s.length;i++) {
			if((s[i]<='Z' && s[i]>='A') || (s[i]<='z' && s[i]>='a')) {
//				martix.get(i).add(s[i]);
//				martix[i][0]=;
				if(i % numsRows ==0 && i!=0) {
					for(int index = numsRows-2;index>=0;index--) {
						lie++;
//						martix.get(index).set(lie, s[i]);
						martix[index][lie]=s[i];
						if(index!=0)
						i++;
					}
				}
				else {
					martix[i%numsRows][lie]=s[i];
				}
			}
		}
		StringBuilder strContact=new StringBuilder();
		for(char[] sub : martix) {
//			strContact.append(String.valueOf(sub));
			for(char ch : sub) {
				System.out.print(ch);
				if(ch!=0) {
					strContact.append(ch);
				}
			}
			System.out.println();
		}
		System.out.println(strContact);
		System.out.println(strContact.length());
	}
//	public static void  process(String str,int numsRows) {
//		if(str==null) {
//			return ;
//		}
//		char []s = str.toCharArray();
//		List<List<Character>> martix =  new ArrayList<>();
//		for(int i=0;i < numsRows;i++) {
//				martix.add(new ArrayList<>(s.length));
//		}
//		//int hang=numsRows;
//		int lie=0;
//		for(int i=0; i < s.length;i++) {
//			if((s[i]<='Z' && s[i]>='A') || (s[i]<='z' && s[i]>='a')) {
//				martix.get(i).add(s[i]);
//				if(i % numsRows ==0) {
//					for(int index = numsRows-1;index>=0;index--) {
//						lie++;
//						martix.get(index).set(lie, s[i]);
//					}
//				}
//			}
//		}
//		StringBuilder strContact=new StringBuilder();
//		for(List<Character> sub : martix) {
//			strContact.append(String.valueOf(sub));
//		}
//		System.out.println(strContact);
//	}

}
